package seggio;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author ale
 */
public class InviaInCabina {

    
    private Socket socket;
    //private BufferedReader in = null;
    //private PrintStream out = null;
    private String IP_CABINA;
    private int PORT_CABINA;
    public InviaInCabina(String IP_CABINA, int PORT_CABINA) throws UnknownHostException, IOException {
        //System.out.println("socket InviaInCabina : "+IP_CABINA+":"+PORT_CABINA);
        //socket = new Socket(IP_CABINA, PORT_CABINA);
        this.IP_CABINA = IP_CABINA;
        this.PORT_CABINA = PORT_CABINA;
    }

    //invia alla cabine (INDIRIZZO IP) la scheda (STRINGA)
    public boolean sendSchedaSenato(String scheda) {

        try {
            socket = new Socket(IP_CABINA, PORT_CABINA);
            // Apre i canali I/O
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream out = new PrintStream(socket.getOutputStream(), true);

            out.println("SCHEDA_SENATO " + scheda);

            out.close();
            in.close();
            return true;

        } catch (UnknownHostException ex) {
            /* il logger permette di inviare messaggi verso una determita destinazione,           
             * tutti i logger si chiameranno con il nome della classe che li contiene.
             * il livello di dettaglio per il log è impostato su SEVERE.
             */
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }

    public boolean sendSchedaCamera(String scheda) {

        try {
            //System.out.println(IP_CABINA+" "+PORT_CABINA);
            socket = new Socket(IP_CABINA, PORT_CABINA);
            // Apre i canali I/O
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream out = new PrintStream(socket.getOutputStream(), true);

            out.println("SCHEDA_CAMERA " + scheda);

            out.close();
            in.close();
            return true;

        } catch (UnknownHostException ex) {
            /* il logger permette di inviare messaggi verso una determita destinazione,           
             * tutti i logger si chiameranno con il nome della classe che li contiene.
             * il livello di dettaglio per il log è impostato su SEVERE.
             */
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }

    public boolean sendSchedaReferendum(String scheda) {

        try {
            //System.out.println(IP_CABINA+" "+PORT_CABINA);
            socket = new Socket(IP_CABINA, PORT_CABINA);
            // Apre i canali I/O
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream out = new PrintStream(socket.getOutputStream(), true);

            out.println("SCHEDA_REFERENDUM " + scheda);

            out.close();
            in.close();
            return true;

        } catch (UnknownHostException ex) {
            /* il logger permette di inviare messaggi verso una determita destinazione,           
             * tutti i logger si chiameranno con il nome della classe che li contiene.
             * il livello di dettaglio per il log è impostato su SEVERE.
             */
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }
    
    
    public boolean sendStatoDiFine(){
        
        try {
            
            //System.out.println(IP_CABINA+" "+PORT_CABINA);
            socket = new Socket(IP_CABINA, PORT_CABINA);
            // Apre i canali I/O            
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream out = new PrintStream(socket.getOutputStream(), true);

            out.println("FINE_INVIO_SCHEDE " + "fineinvio");

            out.close();
            in.close();
            return true;
            
        } catch (UnknownHostException ex) {
            /* il logger permette di inviare messaggi verso una determita destinazione,           
             * tutti i logger si chiameranno con il nome della classe che li contiene.
             * il livello di dettaglio per il log è impostato su SEVERE.
             */
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(StartConfigSeggio.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    }
           
}
